home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr37 / cw_sp_46.zip / SUBSCRIP.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1995-03-18  |  27KB  |  1,457 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Date     DATE002
  20.     Date     DATE003
  21.     Date     DATE004
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  INTEGER014
  34.     Integer  INTEGER015
  35.     Integer  INTEGER016
  36.     Integer  INTEGER017
  37.     Integer  INTEGER018
  38.     Integer  INTEGER019
  39.     Integer  INTEGER020
  40.     Integer  INTEGER021
  41.     Integer  INTEGER022
  42.     Integer  INTEGER023
  43.     Integer  INTEGER024
  44.     Integer  INTEGER025
  45.     Integer  INTEGER026
  46.     Integer  INTEGER027
  47.     Integer  INTEGER028
  48.     Integer  INTEGER029
  49.     Integer  INTEGER030
  50.     Integer  INTEGER031
  51.     Integer  INTEGER032
  52.     Integer  INTEGER033
  53.     Integer  INTEGER034
  54.     Integer  INTEGER035
  55.     Integer  INTEGER036
  56.     Integer  INTEGER037
  57.     Integer  INTEGER038
  58.     Integer  INTEGER039
  59.     Integer  INTEGER040
  60.     Integer  INTEGER041
  61.     Integer  INTEGER042
  62.     Money    MONEY001
  63.     Money    MONEY002
  64.     Money    MONEY003
  65.     Money    MONEY004
  66.     Money    MONEY005
  67.     Money    MONEY006
  68.     Money    MONEY007
  69.     Money    MONEY008
  70.     Money    MONEY009
  71.     Money    MONEY010
  72.     String   STRING003
  73.     String   STRING004
  74.     String   STRING005
  75.     String   STRING006
  76.     String   STRING007
  77.     String   STRING008
  78.     String   STRING009
  79.     String   STRING010
  80.     String   STRING011
  81.     String   STRING012
  82.     String   STRING013
  83.     String   STRING014
  84.     String   STRING015
  85.     String   STRING016
  86.     String   STRING017
  87.     String   STRING018
  88.     String   STRING019
  89.     String   STRING020
  90.     String   STRING021
  91.     String   STRING022
  92.     String   STRING023
  93.     String   STRING024
  94.     String   STRING025
  95.     String   STRING026
  96.     String   STRING027
  97.     String   STRING028
  98.     String   STRING029
  99.     String   STRING030
  100.     String   STRING031
  101.     String   STRING032
  102.     String   STRING033
  103.     String   STRING034
  104.     String   STRING035
  105.     String   STRING036
  106.     String   STRING037
  107.     String   STRING038
  108.     String   STRING039
  109.     String   STRING040
  110.     String   STRING041
  111.     String   STRING042
  112.     String   STRING043
  113.     String   STRING044
  114.     String   TSTRING045(50)
  115.     String   TSTRING046(50)
  116.     String   STRING047
  117.     String   STRING048
  118.     String   STRING049
  119.     String   STRING050
  120.     String   STRING051
  121.     String   STRING052
  122.     String   STRING053
  123.     String   STRING054
  124.     String   STRING055
  125.     String   STRING056
  126.     String   STRING057
  127.     String   STRING058
  128.     String   STRING059
  129.     String   STRING060
  130.     String   STRING061
  131.     String   STRING062
  132.     String   STRING063
  133.     String   STRING064
  134.     String   STRING065
  135.     String   STRING066
  136.     String   STRING067
  137.     String   STRING068
  138.     String   STRING069
  139.     String   STRING070
  140.     String   STRING071
  141.     String   STRING072
  142.     String   STRING073
  143.     String   STRING074
  144.     String   STRING075
  145.     String   STRING076
  146.     String   STRING077
  147.     String   STRING078
  148.     String   STRING079
  149.     String   STRING080
  150.     String   STRING081
  151.     String   STRING082
  152.     String   STRING083
  153.     String   STRING084
  154.     String   STRING085
  155.     String   STRING086
  156.     String   STRING087
  157.     String   STRING088
  158.     String   STRING089
  159.     String   STRING090
  160.     String   STRING091
  161.     String   STRING092
  162.     String   STRING093
  163.     String   STRING094
  164.     String   STRING095
  165.     String   STRING096
  166.     String   STRING097
  167.     String   STRING098
  168.     String   STRING099
  169.     String   STRING100
  170.     String   STRING101
  171.     String   STRING102
  172.     String   STRING103
  173.     String   STRING104
  174.     String   STRING105
  175.     String   STRING106
  176.     String   STRING107
  177.     String   STRING108
  178.     Double   DOUBLE001
  179.     Double   DOUBLE002
  180.  
  181. ;------------------------------------------------------------------------------
  182.  
  183.     GetToken STRING053
  184.     If (STRING053 == "S") STRING083 = "Y"
  185.     STRING089 = "4.6 "
  186.     STRING042 = "00000000"
  187.     STRING005 = PPEPath() + "PROMPTS.SP"
  188.     If (GrafMode() == "R") STRING005 = PPEPath() + "PROMPTS.SPR"
  189.     INTEGER037 = 36
  190.     STRING098 = PPEPath() + PPEName() + ".CNF"
  191.     STRING106 = 58053
  192.     STRING104 = "N"
  193.     STRING107 = "U" + "n" + "r" + "e" + "g" + "i" + "s" + "t" + "e" + "r" + "e" + "d"
  194.     If (PPEName() == "SUBSCRIP") STRING105 = 46554
  195.     If (PPEName() == "FONE-VER") STRING105 = 34479
  196.     If (PPEName() == "PRO-VOTE") STRING105 = 57877
  197.     If (PPEName() == "CONFMENU") STRING105 = 27062
  198.     If (PPEName() == "FILEMENU") STRING105 = 14513
  199.     If (PPEName() == "MAINMENU") STRING105 = 25781
  200.     If (PPEName() == "DOORMENU") STRING105 = 44910
  201.     If (PPEName() == "AUTOPOST") STRING105 = 61482
  202.     If (PPEName() == "BBSLISTR") STRING105 = 11832
  203.     If (PPEName() == "REMINDME") STRING105 = 54925
  204.     If (PPEName() == "TIMEZONE") STRING105 = 38318
  205.     If (PPEName() == "USERNEWS") STRING105 = 31171
  206.     If (PPEName() == "MSGQUEST") STRING105 = 50024
  207.     If (PPEName() == "BIRTHDAY") STRING105 = 19645
  208.     If (PPEName() == "HOWHEARD") STRING105 = 42868
  209.     If (PPEName() == "WELCOMAT") STRING105 = 23034
  210.     If (PPEName() == "PAGE-ME!") STRING105 = 35782
  211.     If (Exist(STRING098)) Then
  212.         FOpen 1, STRING098, 0, 0
  213.         FGet 1, STRING093
  214.         FGet 1, INTEGER040
  215.         FGet 1, INTEGER039
  216.         FClose 1
  217.     Else
  218.         Select Case (PPEName())
  219.             Case "MAINT"
  220.                 STRING098 = PPEPath() + "PRO-VOTE.CNF"
  221.             Case "CMW"
  222.                 STRING098 = PPEPath() + "CONFMENU.CNF"
  223.             Case "INTELAPP"
  224.                 STRING098 = PPEPath() + "INTELEC.CNF"
  225.             Case Else
  226.                 PrintLn "@X0CError - Config file not found - Please notify SysOp"
  227.                 End
  228.             Endif
  229.     End Select
  230.     STRING108 = "N"
  231.     If (INTEGER039 == 101180) STRING108 = "Y"
  232.     If (INTEGER039 == 101639) STRING108 = "Y"
  233.     If (STRING108 == "Y") Then
  234.         STRING054 = ReadLine(PCBDat(), 31)
  235.         Delete STRING054
  236.         STRING054 = ReadLine(PCBDat(), 32)
  237.         Delete STRING054
  238.         STRING054 = ReadLine(PCBDat(), 33)
  239.         Delete STRING054
  240.         STRING054 = ReadLine(PCBDat(), 34)
  241.         Delete STRING054
  242.         STRING054 = ReadLine(PCBDat(), 35)
  243.         Delete STRING054
  244.         STRING054 = ReadLine(PCBDat(), 45)
  245.         Delete STRING054
  246.         STRING054 = ReadLine(PCBDat(), 180)
  247.         Delete STRING054
  248.         STRING054 = ReadLine(PCBDat(), 200)
  249.         Delete STRING054
  250.         STRING054 = ReadLine(PCBDat(), 230)
  251.         Delete STRING054
  252.         STRING054 = ReadLine(PCBDat(), 232)
  253.         Delete STRING054
  254.         STRING054 = ReadLine(PCBDat(), 244)
  255.         Delete STRING054
  256.         STRING054 = PCBDat()
  257.         Delete STRING054
  258.         Bye
  259.     Endif
  260.     Tokenize STRING093
  261.     GetToken STRING102
  262.     GetToken STRING103
  263.     If (INTEGER040 == 0) Then
  264.         STRING104 = "N"
  265.         Goto LABEL003
  266.     Else
  267.         Goto LABEL001
  268.     Endif
  269.     :LABEL001
  270.     STRING099 = Left(STRING102, 1)
  271.     STRING100 = Left(STRING103, 2)
  272.     STRING101 = STRING099 + STRING100
  273.     If (STRING099 == "A") INTEGER041 = 8408
  274.     If (STRING099 == "B") INTEGER041 = 9119
  275.     If (STRING099 == "C") INTEGER041 = 6619
  276.     If (STRING099 == "D") INTEGER041 = 4820
  277.     If (STRING099 == "E") INTEGER041 = 7325
  278.     If (STRING099 == "F") INTEGER041 = 2928
  279.     If (STRING099 == "G") INTEGER041 = 2031
  280.     If (STRING099 == "H") INTEGER041 = 1934
  281.     If (STRING099 == "I") INTEGER041 = 5534
  282.     If (STRING099 == "J") INTEGER041 = 4737
  283.     If (STRING099 == "K") INTEGER041 = 9242
  284.     If (STRING099 == "L") INTEGER041 = 3743
  285.     If (STRING099 == "M") INTEGER041 = 6546
  286.     If (STRING099 == "N") INTEGER041 = 8355
  287.     If (STRING099 == "O") INTEGER041 = 2859
  288.     If (STRING099 == "P") INTEGER041 = 4660
  289.     If (STRING099 == "Q") INTEGER041 = 7463
  290.     If (STRING099 == "R") INTEGER041 = 1164
  291.     If (STRING099 == "S") INTEGER041 = 6471
  292.     If (STRING099 == "T") INTEGER041 = 3973
  293.     If (STRING099 == "U") INTEGER041 = 5674
  294.     If (STRING099 == "V") INTEGER041 = 5782
  295.     If (STRING099 == "W") INTEGER041 = 3885
  296.     If (STRING099 == "X") INTEGER041 = 8287
  297.     If (STRING099 == "Y") INTEGER041 = 7591
  298.     If (STRING099 == "Z") INTEGER041 = 1096
  299.     INTEGER038 = S2I(STRING101, INTEGER037) + INTEGER040 + STRING105 + INTEGER041
  300.     INTEGER042 = S2I(STRING101, INTEGER037) + INTEGER040 + STRING106 + INTEGER041
  301.     If (INTEGER039 == INTEGER038) Goto LABEL002
  302.     If (INTEGER039 == INTEGER042) Goto LABEL002
  303.     Goto LABEL068
  304.     :LABEL002
  305.     STRING104 = "Y"
  306.     If (Len(INTEGER040) == 1) STRING095 = "000"
  307.     If (Len(INTEGER040) == 2) STRING095 = "00"
  308.     If (Len(INTEGER040) == 3) STRING095 = "0"
  309.     If (Len(INTEGER040) == 4) STRING095 = ""
  310.     STRING096 = INTEGER040
  311.     STRING097 = STRING095 + STRING096
  312.     STRING094 = Space(30 - Len(STRING093))
  313.     :LABEL003
  314.     If (Psa(3)) Goto LABEL004
  315.     PrintLn ReadLine(STRING005, 23)
  316.     End
  317.     :LABEL004
  318.     If (Psa(6)) Goto LABEL005
  319.     PrintLn ReadLine(STRING005, 24)
  320.     End
  321.     :LABEL005
  322.     GetUser
  323.     STRING055 = Left(U_Addr(0), 27)
  324.     STRING056 = Left(U_Addr(1), 27)
  325.     FOpen 1, STRING098, 0, 0
  326.     FGet 1, STRING054
  327.     FGet 1, STRING054
  328.     FGet 1, INTEGER039
  329.     FGet 1, INTEGER013
  330.     FGet 1, INTEGER014
  331.     FGet 1, INTEGER017
  332.     FGet 1, INTEGER018
  333.     FGet 1, STRING012
  334.     FGet 1, STRING088
  335.     FGet 1, STRING035
  336.     FGet 1, DOUBLE001
  337.     FGet 1, STRING029
  338.     FGet 1, STRING028
  339.     FGet 1, STRING030
  340.     FGet 1, MONEY008
  341.     FGet 1, INTEGER028
  342.     FGet 1, INTEGER029
  343.     FClose 1
  344.     INTEGER014 = INTEGER014 - 1
  345.     DATE002 = Date()
  346.     DATE004 = DATE002 + INTEGER013
  347.     INTEGER029 = INTEGER029 - 1
  348.     If (INTEGER029 == 5) Then
  349.         STRING003 = Left(U_Ver, 8)
  350.     Else
  351.         STRING003 = Left(U_Notes(INTEGER029), 8)
  352.     Endif
  353.     STRING003 = Strip(STRING003, Chr(32))
  354.     If (Len(STRING003) < 8) Goto LABEL006
  355.     INTEGER034 = Month(DATE002)
  356.     INTEGER033 = Day(DATE002)
  357.     INTEGER035 = Year(DATE002)
  358.     INTEGER035 = INTEGER035 - 1900
  359.     INTEGER035 = INTEGER035 - INTEGER028
  360.     INTEGER036 = INTEGER035
  361.     INTEGER031 = Mid(STRING003, 1, 2)
  362.     INTEGER030 = Mid(STRING003, 4, 2)
  363.     INTEGER032 = Mid(STRING003, 7, 2)
  364.     STRING004 = ""
  365.     If (INTEGER036 > INTEGER032) STRING004 = "OK"
  366.     If (INTEGER036 < INTEGER032) STRING004 = "UNDER"
  367.     Select Case (STRING004)
  368.         Case ""
  369.             If (Month(DATE002) > INTEGER031) STRING004 = "OK"
  370.             If (Month(DATE002) < INTEGER031) STRING004 = "UNDER"
  371.         Case ""
  372.             If (Day(DATE002) >= INTEGER030) STRING004 = "OK"
  373.             If (Day(DATE002) < INTEGER030) STRING004 = "UNDER"
  374.     End Select
  375.     :LABEL006
  376.     FOpen 1, PPEPath() + "DISPLAYS.LST", 0, 0
  377.     FGet 1, STRING071
  378.     FGet 1, STRING084
  379.     FGet 1, STRING074
  380.     FGet 1, STRING078
  381.     FGet 1, STRING077
  382.     FGet 1, STRING073
  383.     FGet 1, STRING079
  384.     FGet 1, STRING076
  385.     FGet 1, STRING075
  386.     FGet 1, STRING072
  387.     FGet 1, STRING021
  388.     FGet 1, STRING020
  389.     FGet 1, STRING080
  390.     FGet 1, STRING024
  391.     FGet 1, STRING025
  392.     FGet 1, STRING026
  393.     FGet 1, STRING027
  394.     FGet 1, STRING031
  395.     FGet 1, STRING091
  396.     FGet 1, STRING092
  397.     FGet 1, STRING037
  398.     FClose 1
  399.     STRING081 = PPEPath() + "SUBSCRIP.OPT"
  400.     STRING087 = PPEPath() + "SUBSCRIP.BDL"
  401.     STRING052 = PPEPath() + "SUBSCRIP.MSG"
  402.     STRING067 = PPEPath() + "CATEGORY.LST"
  403.     STRING060 = PPEPath() + "ORDER." + String(PcbNode())
  404.     STRING061 = PPEPath() + "ORDER.LOG"
  405.     STRING044 = PPEPath() + "QUANT." + String(PcbNode())
  406.     STRING007 = PPEPath() + "SHELLAMT." + String(PcbNode())
  407.     DATE002 = Date()
  408.     If ((STRING083 == "Y") && (STRING104 == "Y")) Goto LABEL062
  409.     If ((STRING083 == "Y") && (STRING104 == "N")) End
  410.     Cls
  411.     PrintLn "SubscriP  v", STRING089, " Reg # ", STRING097, "  ", STRING093
  412.     Delay 40
  413.     DispFile STRING071, 4 + 2 + 1
  414.     Wait
  415.     DispFile STRING072, 4 + 2 + 1
  416.     Wait
  417.     FOpen 1, PPEPath() + "TCAN.NAM", 0, 0
  418.     :LABEL007
  419.     If (Ferr(1)) Goto LABEL008
  420.     FGet 1, STRING059
  421.     If (U_Name() == STRING059) Then
  422.         FClose 1
  423.     Else
  424.         Goto LABEL007
  425.         :LABEL008
  426.         FClose 1
  427.         :LABEL009
  428.         STRING066 = ""
  429.         DispFile STRING084, 4 + 2 + 1
  430.         STRING032 = ""
  431.         InputStr ReadLine(STRING005, 1), STRING032, 11, 1, "CcDdHhIiOoPpQqSsVv", 8
  432.         If (STRING032 == "D") STRING066 = "D"
  433.         If (STRING032 == "D") Goto LABEL034
  434.         If (STRING032 == "V") STRING066 = "V"
  435.         If (STRING032 == "V") Goto LABEL034
  436.         If (STRING032 == "O") STRING066 = "A"
  437.         If (STRING032 == "O") Goto LABEL011
  438.         If (STRING032 == "C") Goto LABEL010
  439.         If (STRING032 == "P") Goto LABEL046
  440.         If (STRING032 == "I") Goto LABEL066
  441.         If (STRING032 == "S") STRING070 = "Y"
  442.         If (STRING032 == "S") Goto LABEL021
  443.         If (STRING032 == "Q") Goto LABEL041
  444.         If (STRING032 == "") Goto LABEL041
  445.         If (STRING032 == "H") Then
  446.             DispFile PPEPath() + "\GRAPH\HELP", 4 + 2 + 1
  447.             Wait
  448.         Endif
  449.         Goto LABEL009
  450.         :LABEL010
  451.         For INTEGER016 = 1 To 50
  452.             TSTRING045(INTEGER016) = ""
  453.         Next
  454.         MONEY010 = 0
  455.         MONEY005 = 0
  456.         MONEY007 = 0
  457.         MONEY009 = 0
  458.         INTEGER021 = 0
  459.         STRING041 = ""
  460.         STRING064 = ""
  461.         STRING063 = ""
  462.         STRING057 = ""
  463.         STRING065 = ""
  464.         STRING039 = ""
  465.         STRING040 = ""
  466.         STRING038 = ""
  467.         GetUser
  468.         Goto LABEL009
  469.         :LABEL011
  470.         If (STRING004 == "UNDER") Goto LABEL058
  471.         If (STRING012 == "N") Then
  472.             If (U_Sec < INTEGER017) Goto LABEL056
  473.             If (U_Sec > INTEGER018) Goto LABEL057
  474.         Endif
  475.         If (MONEY005 == 0) Then
  476.             Cls
  477.             PrintLn ReadLine(STRING005, 25)
  478.             PrintLn 
  479.             Wait
  480.             Goto LABEL009
  481.         Endif
  482.         If (U_Addr(0) == "") Then
  483.             :LABEL012
  484.             InputStr ReadLine(STRING005, 2), STRING055, 11, 27, Mask_Ascii() + Mask_Num() + Mask_Alpha(), 2 + 128
  485.             If (STRING055 == "") Goto LABEL012
  486.             InputStr ReadLine(STRING005, 3), STRING056, 11, 27, Mask_Ascii() + Mask_Num() + Mask_Alpha(), 2 + 128
  487.             U_Addr(0) = STRING055
  488.             U_Addr(1) = STRING056
  489.         Endif
  490.         If (U_Addr(2) == "") Then
  491.             :LABEL013
  492.             InputStr ReadLine(STRING005, 4), STRING048, 11, 25, Mask_Ascii() + Mask_Num() + Mask_Alpha(), 2 + 128
  493.             If (STRING048 == "") Goto LABEL013
  494.             U_Addr(2) = STRING048
  495.         Endif
  496.         :LABEL014
  497.         InputStr ReadLine(STRING005, 5), STRING049, 11, 3, Mask_Alpha(), 2 + 8 + 128
  498.         If (Len(STRING049) < 2) Goto LABEL014
  499.         U_Addr(3) = STRING049
  500.         If (U_Addr(4) == "") Then
  501.             :LABEL015
  502.             InputStr ReadLine(STRING005, 6), STRING050, 11, 10, Mask_Ascii() + Mask_Num() + Mask_Alpha(), 2 + 8 + 128
  503.             If (Len(STRING050) < 5) Goto LABEL015
  504.             U_Addr(4) = STRING050
  505.         Endif
  506.         If (U_Addr(5) == "") Then
  507.             :LABEL016
  508.             InputStr ReadLine(STRING005, 7), STRING051, 11, 15, Mask_Ascii() + Mask_Num() + Mask_Alpha(), 2 + 8 + 128
  509.             If (STRING051 == "") Goto LABEL016
  510.             U_Addr(5) = STRING051
  511.         Endif
  512.         If (Exist(STRING027)) Then
  513.             INTEGER011 = 0
  514.             FOpen 1, PPEPath() + "SHIPPING.LST", 0, 0
  515.             :LABEL017
  516.             If (Ferr(1)) Goto LABEL018
  517.             FGet 1, STRING041
  518.             FGet 1, STRING054
  519.             FGet 1, STRING054
  520.             FGet 1, STRING054
  521.             INTEGER011 = INTEGER011 + 1
  522.             Goto LABEL017
  523.             :LABEL018
  524.             FClose 1
  525.             Cls
  526.             DispFile STRING027, 4 + 1 + 2
  527.         Else
  528.             Cls
  529.             PrintLn ReadLine(STRING005, 26)
  530.             PrintLn ReadLine(STRING005, 27)
  531.             FOpen 1, PPEPath() + "SHIPPING.LST", 0, 0
  532.             INTEGER011 = 0
  533.             :LABEL019
  534.             If (Ferr(1)) Goto LABEL020
  535.             FGet 1, STRING041
  536.             FGet 1, STRING054
  537.             FGet 1, STRING054
  538.             FGet 1, STRING054
  539.             INTEGER011 = INTEGER011 + 1
  540.             If (!(STRING041 == "")) PrintLn "@X0A" + Space(2 - Len(INTEGER011)) + String(INTEGER011) + "@X0F " + String(STRING041)
  541.             Goto LABEL019
  542.             :LABEL020
  543.             FClose 1
  544.             PrintLn 
  545.         Endif
  546.         INTEGER003 = 0
  547.         INTEGER011 = INTEGER011 - 1
  548.         InputStr ReadLine(STRING005, 8), INTEGER003, 11, 2, Mask_Num(), 2
  549.         If (INTEGER003 == 0) Goto LABEL009
  550.         If (INTEGER003 > INTEGER011) Goto LABEL052
  551.         FOpen 1, PPEPath() + "SHIPPING.LST", 0, 0
  552.         For INTEGER015 = 1 To INTEGER003
  553.             FGet 1, STRING041
  554.             FGet 1, MONEY001
  555.             FGet 1, INTEGER022
  556.             FGet 1, DOUBLE002
  557.             DOUBLE002 = DOUBLE002 * 100
  558.         Next
  559.         FClose 1
  560.         :LABEL021
  561.         If (Exist(STRING031)) Then
  562.             FOpen 1, PPEPath() + "PAYMENT.LST", 0, 0
  563.             INTEGER011 = 0
  564.             :LABEL022
  565.             If (Ferr(1)) Goto LABEL023
  566.             FGet 1, STRING054
  567.             INTEGER011 = INTEGER011 + 1
  568.             Goto LABEL022
  569.             :LABEL023
  570.             FClose 1
  571.             Cls
  572.             DispFile STRING031, 4 + 1 + 2
  573.         Else
  574.             Cls
  575.             PrintLn ReadLine(STRING005, 28)
  576.             PrintLn ReadLine(STRING005, 29)
  577.             FOpen 1, PPEPath() + "PAYMENT.LST", 0, 0
  578.             INTEGER011 = 0
  579.             :LABEL024
  580.             If (Ferr(1)) Goto LABEL025
  581.             FGet 1, STRING054
  582.             INTEGER011 = INTEGER011 + 1
  583.             If (!(STRING054 == "")) PrintLn "@X0A" + Space(2 - Len(INTEGER011)) + String(INTEGER011) + "@X0F " + String(STRING054)
  584.             Goto LABEL024
  585.             :LABEL025
  586.             FClose 1
  587.             PrintLn 
  588.         Endif
  589.         If (STRING070 == "Y") Then
  590.             STRING070 = "N"
  591.             Wait
  592.             Goto LABEL009
  593.         Endif
  594.         INTEGER003 = 0
  595.         INTEGER011 = INTEGER011 - 1
  596.         InputStr ReadLine(STRING005, 9), INTEGER003, 11, 2, Mask_Num(), 2
  597.         If (INTEGER003 == 0) Goto LABEL009
  598.         If (INTEGER003 > INTEGER011) Goto LABEL052
  599.         FOpen 1, PPEPath() + "PAYMENT.LST", 0, 0
  600.         For INTEGER015 = 1 To INTEGER003
  601.             FGet 1, STRING054
  602.         Next
  603.         FClose 1
  604.         STRING039 = "N"
  605.         STRING038 = "N"
  606.         STRING040 = "N"
  607.         If (STRING054 == "CHECK") STRING039 = "Y"
  608.         If (STRING054 == "COD") STRING038 = "Y"
  609.         STRING062 = "N"
  610.         If ((STRING054 == "CHECK") || (STRING054 == "COD")) STRING062 = "Y"
  611.         If ((STRING012 == "Y") && !(STRING062 == "Y")) Then
  612.             If (U_Sec < INTEGER017) Goto LABEL056
  613.             If (U_Sec > INTEGER018) Goto LABEL057
  614.         Endif
  615.         If ((STRING039 == "Y") || (STRING038 == "Y")) Goto LABEL034
  616.         STRING040 = "Y"
  617.         Cls
  618.         InputStr ReadLine(STRING005, 10), STRING063, 11, 27, Mask_Alpha() + Mask_Ascii() + Mask_Num(), 2 + 8
  619.         Cls
  620.         InputCC ReadLine(STRING005, 11), STRING057, 11
  621.         If (ValCC(STRING057)) Goto LABEL026
  622.         Goto LABEL045
  623.         :LABEL026
  624.         STRING057 = FmtCC(STRING057)
  625.         FOpen 1, PPEPath() + "TCAN.NUM", 0, 0
  626.         :LABEL027
  627.         If (Ferr(1)) Goto LABEL028
  628.         FGet 1, STRING058
  629.         If (STRING057 == STRING058) Then
  630.             FClose 1
  631.         Else
  632.             Goto LABEL027
  633.             :LABEL028
  634.             FClose 1
  635.             STRING064 = CCType(STRING057)
  636.             FOpen 1, PPEPath() + "PAYMENT.LST", 0, 0
  637.             :LABEL029
  638.             If (Ferr(1)) Goto LABEL030
  639.             FGet 1, STRING054
  640.             If (STRING064 == STRING054) Then
  641.                 FClose 1
  642.             Else
  643.                 Goto LABEL029
  644.                 :LABEL030
  645.                 FClose 1
  646.                 Goto LABEL044
  647.             Endif
  648.             :LABEL031
  649.             Cls
  650.             InputStr ReadLine(STRING005, 12), STRING065, 14, 4, "1234567890", 2
  651.             PrintLn 
  652.             If (Len(STRING065) == 4) Goto LABEL033
  653.             Beep
  654.             PrintLn 
  655.             PrintLn ReadLine(STRING005, 30)
  656.             PrintLn "@X0E"
  657.             Goto LABEL031
  658.             :LABEL032
  659.             Beep
  660.             PrintLn 
  661.             PrintLn ReadLine(STRING005, 31)
  662.             PrintLn 
  663.             Goto LABEL031
  664.             :LABEL033
  665.             INTEGER007 = Left(STRING065, 2)
  666.             INTEGER008 = Mid(STRING065, 3, 2)
  667.             INTEGER009 = Month(Date())
  668.             INTEGER010 = Year(Date())
  669.             If (INTEGER008 > 80) Then
  670.                 INTEGER008 = INTEGER008 + 1900
  671.             Else
  672.                 INTEGER008 = INTEGER008 + 2000
  673.             Endif
  674.             If ((INTEGER007 > 12) || (INTEGER007 < 1)) Goto LABEL032
  675.             If (INTEGER008 > INTEGER010) Goto LABEL034
  676.             If ((INTEGER008 == INTEGER010) && (INTEGER007 >= INTEGER009)) Goto LABEL036
  677.             PrintLn 
  678.             Beep
  679.             PrintLn ReadLine(STRING005, 32)
  680.             Wait
  681.             Goto LABEL009
  682.             :LABEL034
  683.             If (STRING043 == "Y") Then
  684.                 STRING042 = ""
  685.                 If (Exist(PPEPath() + "INVOICE.NUM")) Goto LABEL035
  686.                 FOpen 1, PPEPath() + "INVOICE.NUM", 2, 0
  687.                 FPut 1, "0"
  688.                 FClose 1
  689.                 :LABEL035
  690.                 FOpen 1, PPEPath() + "INVOICE.NUM", 0, 0
  691.                 FGet 1, INTEGER023
  692.                 FClose 1
  693.                 INTEGER023 = INTEGER023 + 1
  694.                 FOpen 1, PPEPath() + "INVOICE.NUM", 2, 0
  695.                 FPut 1, INTEGER023
  696.                 FClose 1
  697.                 For INTEGER015 = 1 To 8 - Len(INTEGER023)
  698.                     STRING042 = STRING042 + "0"
  699.                 Next
  700.                 STRING042 = STRING042 + String(INTEGER023)
  701.             Endif
  702.             Cls
  703.             If (Exist(STRING060)) Delete STRING060
  704.             OpenCap STRING060, STRING033
  705.             PrintLn "───────────────────────────────────────────────────────────────────────────────"
  706.             PrintLn ReadLine(STRING005, 33)
  707.             PrintLn ReadLine(STRING005, 34)
  708.             PrintLn ReadLine(STRING005, 35), STRING042
  709.             PrintLn 
  710.             PrintLn " User Name: ", U_Name(), Space(27 - Len(U_Name())), "│          Date: ", Date()
  711.             PrintLn "   Address: ", STRING055, Space(27 - Len(STRING055)), "│  Name On Card: ", STRING063
  712.             PrintLn "   Address: ", STRING056, Space(27 - Len(STRING056)), "│     Card Type: ", STRING064
  713.             PrintLn "      City: ", U_Addr(2), Space(27 - Len(U_Addr(2))), "│     CC Number: ", STRING057
  714.             PrintLn "State/Prov: ", U_Addr(3), Space(27 - Len(U_Addr(3))), "│     CC Expire: ", STRING065
  715.             If (((STRING039 == "") && (STRING038 == "")) && (STRING040 == "")) Then
  716.                 PrintLn "  Zip Code: ", U_Addr(4), Space(27 - Len(U_Addr(4))), "│"
  717.             Else
  718.                 If (STRING039 == "Y") PrintLn "  Zip Code: ", U_Addr(4) , Space(27 - Len(U_Addr(4))) , "│  Pay By Check: YES"
  719.                 If (STRING038 == "Y") PrintLn "  Zip Code: ", U_Addr(4) , Space(27 - Len(U_Addr(4))) , "│    Pay By COD: YES"
  720.                 If (STRING040 == "Y") PrintLn "  Zip Code: ", U_Addr(4) , Space(27 - Len(U_Addr(4))) , "│"
  721.             Endif
  722.             PrintLn "   Country: ", U_Addr(5), Space(27 - Len(U_Addr(5))), "│   Ship Method: ", STRING041
  723.             PrintLn "                                       │    Office Use:"
  724.             PrintLn 
  725.             For INTEGER016 = 1 To 50
  726.                 If (!(TSTRING045(INTEGER016) == "")) PrintLn TSTRING045(INTEGER016)
  727.             Next
  728.             PrintLn "                                                            SubTotal:", Space(10 - Len(MONEY005)), MONEY005
  729.             Gosub LABEL069
  730.             STRING043 = "N"
  731.             PrintLn "                                                            Shipping:", Space(10 - Len(MONEY007)), MONEY007
  732.             If ((((STRING038 == "Y") && (STRING029 == "Y")) || ((STRING039 == "Y") && (STRING028 == "Y"))) || ((STRING040 == "Y") && (STRING030 == "Y"))) Then
  733.                 MONEY009 = (MONEY005 * MONEY008) / 1000
  734.             Else
  735.                 MONEY009 = 0
  736.             Endif
  737.             PrintLn "                                                            Handling:", Space(10 - Len(MONEY009)), MONEY009
  738.             If ((STRING049 == STRING035) || (STRING035 == "ALL")) Then
  739.                 If (STRING035 == "ALL") STRING035 = ""
  740.                 MONEY010 = ((MONEY005 + MONEY009 + MONEY007) * DOUBLE001) / 100
  741.             Else
  742.                 MONEY010 = 0
  743.             Endif
  744.             PrintLn "                                                       ", Space(3 - Len(STRING035)), STRING035, " Sales Tax:", Space(10 - Len(MONEY010)), MONEY010
  745.             MONEY006 = MONEY005 + MONEY010 + MONEY009 + MONEY007
  746.             PrintLn "                                                               Total:", Space(10 - Len(MONEY006)), MONEY006
  747.             PrintLn "───────────────────────────────────────────────────────────────────────────────"
  748.             CloseCap 
  749.             Wait
  750.             If (STRING066 == "A") Goto LABEL036
  751.             If (STRING066 == "V") Goto LABEL009
  752.             If (STRING066 == "D") Goto LABEL037
  753.             If (STRING066 == "P") Goto LABEL039
  754.             Goto LABEL009
  755.             :LABEL036
  756.             STRING032 = "N"
  757.             InputStr ReadLine(STRING005, 13), STRING032, 11, 1, "YyNn", 2 + 8
  758.             If (STRING032 == "Y") Then
  759.                 Goto LABEL038
  760.             Else
  761.                 Delete STRING060
  762.                 Goto LABEL010
  763.             Endif
  764.             :LABEL037
  765.             STRING032 = "N"
  766.             InputStr ReadLine(STRING005, 14), STRING032, 11, 1, "YyNn", 128 + 8 + 2
  767.             If (STRING032 == "Y") Then
  768.                 Shell 1, STRING033, PPEPath() + "SEND.BAT ", STRING060
  769.             Endif
  770.             PrintLn 
  771.             Goto LABEL009
  772.             :LABEL038
  773.             Gosub LABEL071
  774.             STRING043 = "Y"
  775.             STRING066 = "P"
  776.             Goto LABEL034
  777.             :LABEL039
  778.             If (Exist(STRING061)) Goto LABEL040
  779.             FOpen 1, STRING061, 2, 0
  780.             FPut 1, ""
  781.             FClose 1
  782.             :LABEL040
  783.             Append STRING060, STRING061
  784.             If (STRING039 == "Y") Then
  785.                 Message 0, "SYSOP", "SubscriP", "Payment By Check ", "R", "0", "0", "0", STRING060
  786.             Else
  787.                 Message 0, "SYSOP", "SubscriP", "Credit Card Order", "R", "0", "0", "0", STRING060
  788.             Endif
  789.             PutUser
  790.             PrintLn 
  791.             STRING032 = "N"
  792.             InputStr ReadLine(STRING005, 14), STRING032, 11, 1, "YyNn", 128 + 8 + 2
  793.             If (STRING032 == "Y") Then
  794.                 Shell 1, STRING033, PPEPath() + "SEND.BAT ", STRING060
  795.             Endif
  796.             PrintLn 
  797.             If (STRING036 == "Y") Gosub LABEL060
  798.             MONEY005 = 0
  799.             If (STRING104 == "Y") Then
  800.                 If (Exist(STRING037)) Then
  801.                     Message 0, U_Name(), "SYSOP", "Thank You", "R", "0", "0", "0", STRING037
  802.                 Endif
  803.             Endif
  804.             :LABEL041
  805.             STRING032 = "Y"
  806.             If (MONEY005 == 0) Goto LABEL042
  807.             PrintLn 
  808.             InputStr ReadLine(STRING005, 15), STRING032, 11, 1, "YyNn", 2 + 8
  809.             If (STRING032 == "N") Goto LABEL009
  810.             :LABEL042
  811.             If (STRING039 == "Y") Then
  812.                 DispFile STRING074, 4 + 2 + 1
  813.                 Wait
  814.             Endif
  815.             DispFile STRING021, 4 + 2 + 1
  816.             If (Exist(STRING060)) Delete STRING060
  817.             If (Exist(STRING007)) Delete STRING007
  818.             If (STRING088 == "") Goto LABEL043
  819.             If (U_Expert == 0) Then
  820.                 KbdString "^M" + "FL " + STRING088 + "^M"
  821.             Else
  822.                 KbdString "FL " + STRING088 + "^M"
  823.             Endif
  824.             :LABEL043
  825.             End
  826.             :LABEL044
  827.             Cls
  828.             PrintLn 
  829.             PrintLn ReadLine(STRING005, 36), STRING064, ReadLine(STRING005, 37)
  830.             PrintLn 
  831.             Wait
  832.             Goto LABEL009
  833.             :LABEL045
  834.             Cls
  835.             DispFile STRING024, 4 + 2 + 1
  836.             Wait
  837.             Goto LABEL009
  838.         Endif
  839.         Cls
  840.         DispFile STRING025, 4 + 2 + 1
  841.         Wait
  842.         Goto LABEL009
  843.     Endif
  844.     Cls
  845.     DispFile STRING025, 4 + 2 + 1
  846.     Wait
  847.     Goto LABEL009
  848.     :LABEL046
  849.     INTEGER003 = 0
  850.     Cls
  851.     DispFile STRING020, 4 + 2 + 1
  852.     InputStr ReadLine(STRING005, 16), INTEGER003, 11, 3, Mask_Num(), 2
  853.     If (INTEGER003 == 0) Goto LABEL009
  854.     FOpen 1, STRING067, 0, 0
  855.     For INTEGER015 = 1 To INTEGER003
  856.         FGet 1, STRING022
  857.         FGet 1, STRING068
  858.     Next
  859.     FClose 1
  860.     STRING022 = PPEPath() + "GRAPH\" + STRING022
  861.     If (STRING068 == "") Then
  862.         Goto LABEL052
  863.     Else
  864.         INTEGER024 = INTEGER003
  865.         Goto LABEL047
  866.     Endif
  867.     :LABEL047
  868.     STRING010 = "N"
  869.     If (Right(STRING068, 12) == "SUBSCRIP.OPT") Goto LABEL053
  870.     Cls
  871.     DispFile STRING022, 4 + 2 + 1
  872.     INTEGER003 = 0
  873.     InputStr ReadLine(STRING005, 17), INTEGER003, 11, 3, Mask_Num(), 2
  874.     If (INTEGER003 == 0) Goto LABEL046
  875.     FOpen 1, STRING068, 0, 0
  876.     For INTEGER015 = 1 To INTEGER003
  877.         FGet 1, STRING016
  878.         If (Len(STRING016) > 34) STRING016 = Left(STRING016, 34)
  879.         FGet 1, STRING008
  880.         MONEY003 = STRING008
  881.         FGet 1, STRING018
  882.         FGet 1, STRING017
  883.         FGet 1, STRING019
  884.         FGet 1, INTEGER012
  885.         FGet 1, STRING009
  886.         FGet 1, STRING062
  887.         FGet 1, STRING013
  888.         FGet 1, STRING062
  889.     Next
  890.     FClose 1
  891.     If (STRING008 == "SHELL") Then
  892.         FOpen 1, STRING007, 0, 0
  893.         FGet 1, MONEY003
  894.         FClose 1
  895.     Endif
  896.     STRING009 = Strip(STRING009, Chr(32))
  897.     If (STRING009 == "") Goto LABEL048
  898.     INTEGER026 = STRING009
  899.     STRING010 = "Y"
  900.     :LABEL048
  901.     If (STRING016 == "") Then
  902.         Goto LABEL052
  903.     Else
  904.         INTEGER025 = INTEGER003
  905.     Endif
  906.     If (STRING013 == "") Goto LABEL049
  907.     FOpen 1, STRING013, 0, 0
  908.     FGet 1, STRING014
  909.     FGet 1, STRING015
  910.     FClose 1
  911.     STRING006 = ""
  912.     If (Exist(STRING014)) Then
  913.         Cls
  914.         DispFile STRING014, 4 + 2 + 1
  915.     Else
  916.         PrintLn 
  917.         PrintLn STRING014
  918.     Endif
  919.     InputStr STRING015, STRING006, 11, 10, Mask_Alpha() + Mask_Ascii() + Mask_Num(), 2 + 8 + 128
  920.     :LABEL049
  921.     INTEGER020 = 1
  922.     InputStr ReadLine(STRING005, 18), INTEGER020, 11, 3, Mask_Num(), 2 + 128
  923.     If (INTEGER020 == 0) Goto LABEL047
  924.     If (STRING010 == "Y") Then
  925.         If (INTEGER020 > INTEGER026) Then
  926.             Cls
  927.             PrintLn ReadLine(STRING005, 38), INTEGER020, ReadLine(STRING005, 39), STRING009, ReadLine(STRING005, 40)
  928.             PrintLn 
  929.             Wait
  930.             Goto LABEL047
  931.         Endif
  932.     Endif
  933.     MONEY005 = MONEY003 * INTEGER020 + MONEY005
  934.     PrintLn 
  935.     PrintLn ReadLine(STRING005, 41), INTEGER020, ReadLine(STRING005, 42), STRING016, ReadLine(STRING005, 43)
  936.     PrintLn 
  937.     MONEY002 = INTEGER020 * MONEY003
  938.     INTEGER021 = INTEGER021 + INTEGER012 * INTEGER020
  939.     STRING023 = Space(3 - Len(INTEGER020)) + String(INTEGER020) + " @ " + Space(9 - Len(MONEY003)) + String(MONEY003) + " each: " + String(STRING016) + " " + STRING006 + Space(34 - Len(String(STRING016))) + Space(10 - Len(String(STRING006))) + " = " + Space(9 - Len(MONEY002)) + String(MONEY002)
  940.     Gosub LABEL050
  941.     Gosub LABEL051
  942.     Wait
  943.     Goto LABEL047
  944.     :LABEL050
  945.     If (STRING010 == "N") Return
  946.     If (TSTRING046(INTEGER025) == "") Then
  947.         TSTRING046(INTEGER025) = String(INTEGER024) + " " + String(INTEGER025) + " " + String(INTEGER020)
  948.         Return
  949.     Endif
  950.     Return
  951.     :LABEL051
  952.     If (TSTRING045(INTEGER025) == "") Then
  953.         TSTRING045(INTEGER025) = STRING023
  954.         Return
  955.     Endif
  956.     Return
  957.     :LABEL052
  958.     Cls
  959.     PrintLn ReadLine(STRING005, 44)
  960.     PrintLn 
  961.     Wait
  962.     Goto LABEL009
  963.     :LABEL053
  964.     Cls
  965.     DispFile STRING022, 1 + 4 + 2
  966.     STRING085 = U_Name()
  967.     INTEGER003 = 0
  968.     InputStr ReadLine(STRING005, 19), INTEGER003, 11, 2, Mask_Num(), 128 + 8 + 2
  969.     If ((STRING104 == "N") && (INTEGER003 > 1)) Goto LABEL075
  970.     If (INTEGER003 == 0) Goto LABEL009
  971.     Gosub LABEL063
  972.     If (U_Sec < INTEGER017) Goto LABEL056
  973.     If (U_Sec > INTEGER018) Goto LABEL057
  974.     If (Exist(STRING081)) Goto LABEL054
  975.     PrintLn ReadLine(STRING005, 45)
  976.     Goto LABEL055
  977.     :LABEL054
  978.     FOpen 1, STRING081, 0, 0
  979.     For INTEGER015 = 1 To INTEGER003
  980.         FGet 1, STRING082
  981.     Next
  982.     FClose 1
  983.     Tokenize STRING082
  984.     GetToken INTEGER006
  985.     U_Sec = INTEGER006
  986.     GetToken INTEGER005
  987.     U_ExpSec = INTEGER005
  988.     GetToken INTEGER004
  989.     DATE003 = DATE002 + INTEGER004
  990.     U_ExpDate = DATE003
  991.     GetToken MONEY004
  992.     If (INTEGER004 == 32768) Then
  993.         DATE003 = 0
  994.         U_ExpDate = 0
  995.     Endif
  996.     While (TokCount() > 0) Do
  997.         GetToken STRING047
  998.         ConfFlag STRING047, 1
  999.     EndWhile
  1000.     INTEGER019 = INTEGER003
  1001.     Goto LABEL059
  1002.     :LABEL055
  1003.     Wait
  1004.     Goto LABEL009
  1005.     :LABEL056
  1006.     Cls
  1007.     DispFile STRING073, 4 + 2 + 1
  1008.     Wait
  1009.     Goto LABEL009
  1010.     :LABEL057
  1011.     Cls
  1012.     DispFile STRING079, 4 + 2 + 1
  1013.     Wait
  1014.     Goto LABEL009
  1015.     :LABEL058
  1016.     Cls
  1017.     DispFile STRING092, 4 + 2 + 1
  1018.     Wait
  1019.     Goto LABEL009
  1020.     :LABEL059
  1021.     STRING032 = ""
  1022.     InputStr ReadLine(STRING005, 20), STRING032, 11, 1, "YyNn", 8 + 2 + 128
  1023.     If ((STRING032 == "N") || (STRING032 == "")) Then
  1024.         DispFile STRING076, 4 + 2 + 1
  1025.         Wait
  1026.         Goto LABEL053
  1027.     Endif
  1028.     If (STRING004 == "UNDER") Goto LABEL058
  1029.     If (STRING032 == "Y") STRING036 = "Y"
  1030.     MONEY005 = MONEY005 + MONEY004
  1031.     INTEGER020 = 1
  1032.     STRING016 = "Subscription"
  1033.     STRING023 = Space(3 - Len(INTEGER020)) + String(INTEGER020) + " @ " + Space(9 - Len(MONEY004)) + String(MONEY004) + "       " + String(STRING016) + Space(45 - Len(String(STRING016))) + " = " + Space(9 - Len(MONEY004)) + String(MONEY004)
  1034.     Gosub LABEL051
  1035.     Goto LABEL009
  1036.     :LABEL060
  1037.     U_Notes(INTEGER014) = ""
  1038.     If (STRING039 == "Y") U_Notes(INTEGER014) = String(INTEGER019) + " On " + String(DATE004) + " a check for " + String(MONEY004) + " is due."
  1039.     PutUser
  1040.     Log "SubscriP v" + String(STRING089) + " Upgraded User to Level " + String(INTEGER019), 0
  1041.     FAppend 1, PPEPath() + "SUBSCRIP.YES", 2, 3
  1042.     FPutLn 1, "On " + String(Date()) + " at " + String(Time()) + "  " + U_Name() + " Subscribed!"
  1043.     FClose 1
  1044.     If (STRING104 == "Y") Then
  1045.         STRING052 = PPEPath() + "SUBSCRIP.MSG"
  1046.         FOpen 1, STRING052, 1, 0
  1047.         FPutLn 1, "A subscription was just purchased by ", U_Name(), " on ", DATE002, "."
  1048.         If (STRING039 == "Y") Then
  1049.             FPutLn 1, "This user was asked to forward ", MONEY004, " by ", DATE004, " and"
  1050.             FPutLn 1, "SubscriP will be monitoring this account accordingly."
  1051.             Goto LABEL061
  1052.         Endif
  1053.         FPutLn 1, "A credit card was used so SubscriP will not monitor at login"
  1054.         :LABEL061
  1055.         FPutLn 1, ""
  1056.         FClose 1
  1057.         Message 0, "SYSOP", "SubscriP", "New Subscriber", "R", "0", "0", "0", STRING052
  1058.         Delete STRING052
  1059.         If (Exist(STRING037)) Then
  1060.             Message 0, U_Name(), "SYSOP", "Thank You", "R", "0", "0", "0", STRING037
  1061.         Endif
  1062.     Endif
  1063.     Cls
  1064.     DispFile STRING075, 4 + 2 + 1
  1065.     Wait
  1066.     Return
  1067.     :LABEL062
  1068.     INTEGER019 = 0
  1069.     GetUser
  1070.     Tokenize U_Notes(INTEGER014)
  1071.     GetToken INTEGER019
  1072.     GetToken STRING033
  1073.     GetToken STRING034
  1074.     DATE004 = STRING034
  1075.     DATE002 = Date()
  1076.     If (INTEGER019 < 1) End
  1077.     If (DATE002 <= DATE004) End
  1078.     FOpen 1, STRING081, 0, 0
  1079.     For INTEGER015 = 1 To INTEGER019
  1080.         FGet 1, STRING082
  1081.     Next
  1082.     FClose 1
  1083.     Tokenize STRING082
  1084.     GetToken INTEGER006
  1085.     GetToken INTEGER005
  1086.     U_ExpSec = INTEGER005
  1087.     U_Sec = INTEGER005
  1088.     GetToken INTEGER004
  1089.     GetToken MONEY004
  1090.     U_ExpDate = DATE004
  1091.     If (INTEGER004 == 32768) Then
  1092.         DATE003 = 0
  1093.         U_ExpDate = 0
  1094.     Endif
  1095.     While (TokCount() > 0) Do
  1096.         GetToken STRING047
  1097.         ConfUnflag STRING047, 1
  1098.     EndWhile
  1099.     If (STRING104 == "Y") Then
  1100.         FAppend 0, STRING087, 1, 0
  1101.         FPutLn 0, U_Name()
  1102.         FClose 0
  1103.         FOpen 1, STRING052, 1, 0
  1104.         FPutLn 1, U_Name(), " was asked to forward ", MONEY004, " by ", DATE004, " and"
  1105.         FPutLn 1, "SubscriP has determined this time frame has expired."
  1106.         FPutLn 1, ""
  1107.         FClose 1
  1108.         Message 0, "SYSOP", "SubscriP", "OverDue Subscriber", "R", "0", "0", "0", STRING052
  1109.         Delete STRING052
  1110.     Endif
  1111.     If (STRING104 == "Y") Then
  1112.         STRING090 = String(MONEY004) + " Was Due On " + String(DATE004) + "."
  1113.         Message 0, U_Name(), "SubscriP", STRING090, "R", "0", "0", "0", STRING077
  1114.     Endif
  1115.     U_Notes(INTEGER014) = "Failed To Forward Subscription Fee By Due Date: " + String(DATE004) + "    "
  1116.     PutUser
  1117.     End
  1118.     :LABEL063
  1119.     If (Exist(STRING087)) Then
  1120.         FOpen 1, STRING087, 0, 0
  1121.         :LABEL064
  1122.         If (Ferr(1)) Goto LABEL065
  1123.         FGet 1, STRING086
  1124.         If (STRING085 == STRING086) Then
  1125.             Cls
  1126.             DispFile STRING078, 4 + 2 + 1
  1127.             FClose 1
  1128.             End
  1129.         Endif
  1130.         Goto LABEL064
  1131.         :LABEL065
  1132.         FClose 1
  1133.     Endif
  1134.     STRING054 = U_Notes(INTEGER014)
  1135.     If (InStr(Upper(STRING054), "IS DUE") >= 1) Then
  1136.         Cls
  1137.         DispFile STRING091, 4 + 2 + 1
  1138.         End
  1139.     Endif
  1140.     Return
  1141.     :LABEL066
  1142.     INTEGER003 = 0
  1143.     Cls
  1144.     DispFile STRING020, 4 + 2 + 1
  1145.     InputStr ReadLine(STRING005, 21), INTEGER003, 11, 3, Mask_Num(), 2
  1146.     If (INTEGER003 == 0) Goto LABEL009
  1147.     FOpen 1, STRING067, 0, 0
  1148.     For INTEGER015 = 1 To INTEGER003
  1149.         FGet 1, STRING022
  1150.         FGet 1, STRING068
  1151.     Next
  1152.     FClose 1
  1153.     STRING022 = PPEPath() + "GRAPH\" + STRING022
  1154.     If (STRING068 == "") Then
  1155.         Goto LABEL052
  1156.     Else
  1157.         Goto LABEL067
  1158.     Endif
  1159.     :LABEL067
  1160.     If (Right(STRING068, 12) == "SUBSCRIP.OPT") Then
  1161.         If (Exist(STRING080)) Then
  1162.             Cls
  1163.             DispFile STRING080, 4 + 2 + 1
  1164.         Else
  1165.             PrintLn 
  1166.             PrintLn ReadLine(STRING005, 46)
  1167.         Endif
  1168.     Else
  1169.         DispFile STRING022, 4 + 2 + 1
  1170.         INTEGER003 = 0
  1171.         InputStr ReadLine(STRING005, 22), INTEGER003, 11, 3, Mask_Num(), 2
  1172.         If (INTEGER003 == 0) Goto LABEL066
  1173.         FOpen 1, STRING068, 0, 0
  1174.         For INTEGER015 = 1 To INTEGER003
  1175.             FGet 1, STRING016
  1176.             FGet 1, MONEY003
  1177.             FGet 1, STRING069
  1178.             FGet 1, STRING017
  1179.             FGet 1, STRING019
  1180.             FGet 1, INTEGER012
  1181.             FGet 1, STRING062
  1182.             FGet 1, STRING062
  1183.             FGet 1, STRING062
  1184.             FGet 1, STRING062
  1185.         Next
  1186.         FClose 1
  1187.         If (MONEY003 == 32768) Then
  1188.             FOpen 1, PPEPath() + "SHELLAMT." + String(PcbNode()), 0, 0
  1189.             FGet 1, MONEY003
  1190.             FClose 1
  1191.             Delete PPEPath() + "SHELLAMT." + String(PcbNode())
  1192.         Endif
  1193.         STRING069 = PPEPath() + "GRAPH\" + STRING069
  1194.         If (Exist(STRING069)) Then
  1195.             Cls
  1196.             DispFile STRING069, 4 + 2 + 1
  1197.         Else
  1198.             PrintLn 
  1199.             PrintLn ReadLine(STRING005, 46)
  1200.         Endif
  1201.     Endif
  1202.     Wait
  1203.     Goto LABEL066
  1204.     :LABEL068
  1205.     Cls
  1206.     PrintLn 
  1207.     PrintLn "                       @X5D┌──────────────────────────────@X50┐@X07"
  1208.     PrintLn "                       @X5D│        @X5ASubscriP  v", STRING089, "       @X50│@X07"
  1209.     PrintLn "                       @X5D│                              @X50│@X07"
  1210.     PrintLn "                       @X5D│      @X5BAborting Operation      @X50│@X07"
  1211.     PrintLn "                       @X5D│                              @X50│@X07"
  1212.     PrintLn "                       @X5D│  @X5BInvalid Registration Code!  @X50│@X07"
  1213.     PrintLn "                       @X5D└@X50──────────────────────────────┘@X07"
  1214.     Delay 50
  1215.     End
  1216.     :LABEL069
  1217.     If (STRING043 == "Y") Return
  1218.     If (MONEY005 == 0) Goto LABEL070
  1219.     If (INTEGER021 <= INTEGER022) Then
  1220.         MONEY007 = MONEY001
  1221.     Else
  1222.         INTEGER021 = INTEGER021 - INTEGER022
  1223.         MONEY007 = INTEGER021 * DOUBLE002 + MONEY001
  1224.     Endif
  1225.     :LABEL070
  1226.     Return
  1227.     :LABEL071
  1228.     For INTEGER016 = 1 To 50
  1229.         If (TSTRING046(INTEGER016) == "") Then
  1230.             Return
  1231.             Continue
  1232.         Endif
  1233.         STRING011 = TSTRING046(INTEGER016)
  1234.         Gosub LABEL072
  1235.     Next
  1236.     :LABEL072
  1237.     Tokenize STRING011
  1238.     GetToken INTEGER024
  1239.     GetToken INTEGER025
  1240.     GetToken INTEGER020
  1241.     FOpen 1, STRING067, 0, 0
  1242.     For INTEGER015 = 1 To INTEGER024
  1243.         FGet 1, STRING054
  1244.         FGet 1, STRING068
  1245.     Next
  1246.     FClose 1
  1247.     INTEGER011 = 0
  1248.     FOpen 0, STRING044, 2, 3
  1249.     FOpen 1, STRING068, 0, 0
  1250.     For INTEGER015 = 1 To INTEGER025 - 1
  1251.         FGet 1, STRING054
  1252.         FPutLn 0, STRING054
  1253.         FGet 1, STRING054
  1254.         FPutLn 0, STRING054
  1255.         FGet 1, STRING054
  1256.         FPutLn 0, STRING054
  1257.         FGet 1, STRING054
  1258.         FPutLn 0, STRING054
  1259.         FGet 1, STRING054
  1260.         FPutLn 0, STRING054
  1261.         FGet 1, STRING054
  1262.         FPutLn 0, STRING054
  1263.         FGet 1, STRING054
  1264.         FPutLn 0, STRING054
  1265.         FGet 1, STRING054
  1266.         FPutLn 0, STRING054
  1267.         FGet 1, STRING054
  1268.         FPutLn 0, STRING054
  1269.         FGet 1, STRING054
  1270.         FPutLn 0, STRING054
  1271.     Next
  1272.     FGet 1, STRING054
  1273.     FPutLn 0, STRING054
  1274.     FGet 1, STRING054
  1275.     FPutLn 0, STRING054
  1276.     FGet 1, STRING054
  1277.     FPutLn 0, STRING054
  1278.     FGet 1, STRING054
  1279.     FPutLn 0, STRING054
  1280.     FGet 1, STRING054
  1281.     FPutLn 0, STRING054
  1282.     FGet 1, STRING054
  1283.     FPutLn 0, STRING054
  1284.     FGet 1, INTEGER027
  1285.     INTEGER027 = INTEGER027 - INTEGER020
  1286.     FPutLn 0, INTEGER027
  1287.     FGet 1, STRING054
  1288.     FPutLn 0, STRING054
  1289.     FGet 1, STRING054
  1290.     FPutLn 0, STRING054
  1291.     FGet 1, STRING054
  1292.     FPutLn 0, STRING054
  1293.     :LABEL073
  1294.     FGet 1, STRING054
  1295.     If (STRING054 == "") Goto LABEL074
  1296.     FPutLn 0, STRING054
  1297.     FGet 1, STRING054
  1298.     FPutLn 0, STRING054
  1299.     FGet 1, STRING054
  1300.     FPutLn 0, STRING054
  1301.     FGet 1, STRING054
  1302.     FPutLn 0, STRING054
  1303.     FGet 1, STRING054
  1304.     FPutLn 0, STRING054
  1305.     FGet 1, STRING054
  1306.     FPutLn 0, STRING054
  1307.     FGet 1, STRING054
  1308.     FPutLn 0, STRING054
  1309.     FGet 1, STRING054
  1310.     FPutLn 0, STRING054
  1311.     FGet 1, STRING054
  1312.     FPutLn 0, STRING054
  1313.     FGet 1, STRING054
  1314.     FPutLn 0, STRING054
  1315.     Goto LABEL073
  1316.     :LABEL074
  1317.     FClose 0
  1318.     FClose 1
  1319.     Delete STRING068
  1320.     Rename STRING044, STRING068
  1321.     Return
  1322.     :LABEL075
  1323.     PrintLn "@X0CError - Only 1 Subscription Available In Unregistered Version"
  1324.     End
  1325.  
  1326. ;------------------------------------------------------------------------------
  1327. ;
  1328. ; Usage report (before postprocessing)
  1329. ;
  1330. ; ■ Statements used :
  1331. ;
  1332. ;    12      End
  1333. ;    30      Cls
  1334. ;    22      Wait
  1335. ;    240     Goto 
  1336. ;    279     Let 
  1337. ;    77      PrintLn 
  1338. ;    229     If 
  1339. ;    1       ConfFlag 
  1340. ;    1       ConfUnflag 
  1341. ;    26      DispFile 
  1342. ;    31      FOpen 
  1343. ;    2       FAppend 
  1344. ;    37      FClose 
  1345. ;    123     FGet 
  1346. ;    3       FPut 
  1347. ;    40      FPutLn 
  1348. ;    3       GetUser
  1349. ;    3       PutUser
  1350. ;    20      Delete 
  1351. ;    1       Log 
  1352. ;    23      InputStr 
  1353. ;    1       InputCC 
  1354. ;    8       Gosub 
  1355. ;    11      Return
  1356. ;    2       Delay 
  1357. ;    5       Tokenize 
  1358. ;    19      GetToken 
  1359. ;    2       Shell 
  1360. ;    3       Beep
  1361. ;    1       Bye
  1362. ;    1       OpenCap 
  1363. ;    1       CloseCap 
  1364. ;    7       Message 
  1365. ;    1       Rename 
  1366. ;    2       KbdString 
  1367. ;    1       Append 
  1368. ;
  1369. ;
  1370. ; ■ Functions used :
  1371. ;
  1372. ;    7       *
  1373. ;    2       /
  1374. ;    248     +
  1375. ;    40      -
  1376. ;    175     ==
  1377. ;    25      <
  1378. ;    16      <=
  1379. ;    15      >
  1380. ;    31      >=
  1381. ;    101     !
  1382. ;    38      &&
  1383. ;    21      ||
  1384. ;    39      Len(
  1385. ;    1       Upper()
  1386. ;    4       Mid()
  1387. ;    8       Left()
  1388. ;    2       Right()
  1389. ;    28      Space()
  1390. ;    8       Ferr()
  1391. ;    2       Chr()
  1392. ;    1       InStr()
  1393. ;    7       Date()
  1394. ;    1       Time()
  1395. ;    11      U_Name()
  1396. ;    2       Year()
  1397. ;    4       Month()
  1398. ;    3       Day()
  1399. ;    2       Strip()
  1400. ;    34      String()
  1401. ;    8       Mask_Alpha()
  1402. ;    15      Mask_Num()
  1403. ;    7       Mask_Ascii()
  1404. ;    12      PCBDat()
  1405. ;    38      PPEPath()
  1406. ;    5       PcbNode()
  1407. ;    59      ReadLine()
  1408. ;    15      Exist()
  1409. ;    2       S2I()
  1410. ;    1       ValCC()
  1411. ;    1       FmtCC()
  1412. ;    1       CCType()
  1413. ;    1       GrafMode()
  1414. ;    2       Psa()
  1415. ;    21      PPEName()
  1416. ;    2       TokCount()
  1417. ;
  1418. ;------------------------------------------------------------------------------
  1419. ;
  1420. ; Analysis flags : FWSd
  1421. ;
  1422. ; F - Change conference flags status ■ 2
  1423. ;     This may be normal for a SELECT replacement but it may also be
  1424. ;     a way to get access to conferences a user is not allowed to.
  1425. ;     ■ Search for : CONFFLAG, CONFUNFLAG
  1426. ;
  1427. ; W - Write user ■ 5
  1428. ;     Program writes a user record. Although this may be normal for a
  1429. ;     User Editor, it may also be a way to modify an account level.
  1430. ;     ■ Search for : PUTUSER
  1431. ;
  1432. ; S - Shell to DOS ■ 5
  1433. ;     This may be normal if the PPE need to execute an external command,
  1434. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1435. ;     or usefull (sorting, maintenance,...). Check!
  1436. ;     ■ Search for : SHELL
  1437. ;
  1438. ; d - Access PCBOARD.DAT ■ 2
  1439. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1440. ;     for many PPE so they can find various informations on the system
  1441. ;     (system paths, max number of lines in messages, ...) but it may also
  1442. ;     be a way to gather vital informations.
  1443. ;     ■ Search for : PCBDAT()
  1444. ;
  1445. ;------------------------------------------------------------------------------
  1446. ;
  1447. ; Postprocessing report
  1448. ;
  1449. ;    14      For/Next
  1450. ;    2       While/EndWhile
  1451. ;    57      If/Then or If/Then/Else
  1452. ;    2       Select Case
  1453. ;
  1454. ;------------------------------------------------------------------------------
  1455. ;                 AEGiS Corp - Break the routines, code against the machines!
  1456. ;------------------------------------------------------------------------------
  1457.